#!/usr/bin/env bash

. ./test.common

test_start "external time step"

min_sync_time=1500
max_sync_time=1550

for step in -1e2 1e2; do
	# Make one step in 150th second
	client_step="(* $step (equal 0.1 (sum 1.0) 150))"
	run_test || test_fail
	check_chronyd_exit || test_fail
	check_packet_interval || test_fail
	check_sync || test_fail
done

min_sync_time=5120
max_sync_time=6200
client_conf="makestep 1 -1"

for step in -1e8 -1e5 1e5 1e8; do
	# Make one step in 5000th second
	client_step="(* $step (equal 0.1 (sum 1.0) 5000))"
	run_test || test_fail
	check_chronyd_exit || test_fail
	check_packet_interval || test_fail
	check_sync || test_fail
done

min_sync_time=$default_min_sync_time
max_sync_time=$default_max_sync_time
time_max_limit=2e4
time_rms_limit=8e3

for step in -1e4 1e4; do
	# Make a step every 500 seconds
	client_step="(* $step (equal 0.1 (% (sum 1.0) 500) 0))"
	run_test || test_fail
	check_chronyd_exit || test_fail
	check_packet_interval || test_fail
	check_sync || test_fail
done

test_pass
